
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Browser;

namespace SignatureDraw
{
	
	public class sigs
    	       {
                public static string sig { get; set; }
			    public static double ht { get; set; }
			    public static double wh { get; set; }
				public static double scale { get; set; }
				public void alert(String msg){
				    try{
						HtmlPage.Window.Invoke ("alert",  msg);    
			        }
					catch {}
				}
				public void savesig(){
				    try{
						HtmlPage.Window.Invoke ("saveSig",  sigs.sig);    
			        }
					catch {}
				}
           }
	

    public partial class App : Application
    {
	
		
        public App()
        {
            this.Startup += this.Application_Startup;
            this.Exit += this.Application_Exit;
            this.UnhandledException += this.Application_UnhandledException;

            InitializeComponent();
        }

		

        private void Application_Startup(object sender, StartupEventArgs e)
        {
			
			try {
				String sigsht = e.InitParams["height"];
				sigs.ht = sigs.ht = double.Parse(sigsht);		
			}
			catch {
			
				sigs.ht = sigs.ht = 150; //270
			}
			try {
				String sigswh = e.InitParams["width"];
				sigs.wh = sigs.wh = double.Parse(sigswh);
			}
			catch {
			    sigs.wh = sigs.wh = 270;
			}
			try {
				String sigsscale = e.InitParams["scale"];
				sigs.scale = sigs.scale = double.Parse(sigsscale);
			}
			catch {
			    sigs.scale = sigs.scale = 1;
			}
			try {
				sigs.sig = sigs.sig = e.InitParams["sig"];
			}
			catch {
				sigs.sig = sigs.sig ="#";			
			}
				
			this.RootVisual = new Page();
        }

        private void Application_Exit(object sender, EventArgs e)
        {

        }
        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
        {
            // If the app is running outside of the debugger then report the exception using
            // the browser's exception mechanism. On IE this will display it a yellow alert 
            // icon in the status bar and Firefox will display a script error.
            if (!System.Diagnostics.Debugger.IsAttached)
            {

                // NOTE: This will allow the application to continue running after an exception has been thrown
                // but not handled. 
                // For production applications this error handling should be replaced with something that will 
                // report the error to the website and stop the application.
                e.Handled = true;

                try
                {
                    string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
                    errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");

                    System.Windows.Browser.HtmlPage.Window.Eval(errorMsg);
                }
                catch (Exception)
                {
                }
            }
        }
    }
}
